package com.meihuayishu.backend.ai;

import com.meihuayishu.backend.algorithm.CommonCalculator;
import com.meihuayishu.backend.algorithm.WuxingAnalyzer;
import java.util.List;

public interface AiService {
    /**
     * 根据卦象结果生成解释
     * @param result 梅花易数计算结果
     * @param wuxingRelation 五行关系分析结果
     * @return AI解释
     */
    String interpret(CommonCalculator.MeihuaResult result, WuxingAnalyzer.WuxingRelationResult wuxingRelation);
    
    /**
     * 根据卦象结果、五行关系和用户问题生成解释
     * @param result 梅花易数计算结果
     * @param wuxingRelation 五行关系分析结果
     * @param question 用户问题
     * @return AI解释
     */
    default String interpretWithQuestion(CommonCalculator.MeihuaResult result,
                                         WuxingAnalyzer.WuxingRelationResult wuxingRelation,
                                         String question) {
        return interpret(result, wuxingRelation);
    }
    
    /**
     * 生成行动建议
     * @param originalName 本卦名称
     * @param changedName 变卦名称
     * @param question 用户问题（可选）
     * @return 行动建议列表
     */
    List<String> generateActionSuggestions(String originalName, String changedName, String question);
    
    /**
     * 使用AI模型进行解卦
     * @param originalName 本卦名称
     * @param changedName 变卦名称
     * @param question 用户问题（可选）
     * @return AI解读结果
     */
    String interpretDivination(String originalName, String changedName, String question);
    
    /**
     * 使用指定的AI模型进行解卦
     * @param originalName 本卦名称
     * @param changedName 变卦名称
     * @param question 用户问题（可选）
     * @param aiProvider AI服务提供商
     * @return AI解读结果
     */
    String interpretDivination(String originalName, String changedName, String question, String aiProvider);
}